package com.galaxy.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.galaxy.common.mybatis.core.page.PageQuery;
import com.galaxy.common.mybatis.core.page.TableDataInfo;
import com.galaxy.user.domain.UserBase;
import com.galaxy.user.domain.bo.UserBaseBo;
import com.galaxy.user.domain.vo.UserBaseVo;

import java.util.List;

public interface UserBaseService extends IService<UserBase> {
    /**
     * 查询用户信息列表
     */
    TableDataInfo<UserBaseVo> queryPageList(UserBaseBo bo, PageQuery pageQuery);

    /**
     * 查询用户信息列表
     */
    List<UserBaseVo> queryList(UserBaseBo bo);

    /**
     * 查询用户信息
     */
    UserBase queryById(Long id);

    String getOpenidByUserId(Long userId);

    /**
     * 新增用户信息
     */
    Boolean insertByBo(UserBaseBo bo);

    /**
     * 修改用户信息
     */
    Boolean updateByBo(UserBaseBo bo);

    /**
     * 校验并批量删除用户信息
     */
    Boolean deleteWithValidByIds(List<Long> ids, Boolean isValid);

    UserBaseVo wxLogin(UserBase user);

    /**
     * 更新用户信息
     */
    UserBase wxUpdate(UserBase userbase);

    /**
     * 更新用户头像
     *
     * @param userId 用户ID
     * @param avatar 头像URL
     * @return 更新后的用户信息
     */
    UserBase updateAvatar(Long userId, String avatar);
}
